package cn.buk.qms.service;

import cn.buk.common.JsonResult;
import cn.buk.common.sc.CommonSearchCriteria;
import cn.buk.tms.dto.TicketSaleDto;
import cn.buk.tms.entity.misc.Qinfo;
import cn.buk.tms.entity.misc.QinfoNotice;
import cn.buk.tms.sc.SearchQinfoCriteria;
import cn.buk.tms.sc.SearchTprCriteria;
import cn.buk.tms.flight.dto.SubclassInfoDto;

import java.util.Date;
import java.util.List;

/**
 * Created by yfdai on 16/6/13.
 * 航班包机信息, 大客户政策共享
 */
public interface FlightCharterService {

    List<Qinfo> searchQinfo(int enterpriseId, SearchQinfoCriteria sc);

    JsonResult reInformQinfo(int enterpriseId, int id);

    JsonResult createQinfoNotice(int enterpriseId, QinfoNotice qinfoNotice);

    JsonResult deleteQinfoNotice(int enterpriseId, int id);

    List<QinfoNotice> searchQinfoNotice(int enterpriseId, CommonSearchCriteria sc);

    /**
     * 保存舱位信息，以及退改签条件
     */
    JsonResult saveSubclassInfo(final int enterpriseId, SubclassInfoDto dto);

    List<SubclassInfoDto> searchSubclassInfos(int enterpriseId, CommonSearchCriteria sc);

    SubclassInfoDto searchSubclassInfoById(int enterpriseId, int id);

    /**
     * 根据TPR指令内容或指定日期获取TPR结果
     */
    JsonResult createTprInfoByContent(int enterpriseId, String username, String tprContent, int deviceId, Date tprDate);

    /**
     * 按日期导入TPR报表
     * @param deviceId 打票机id
     * @param type3 打票机对应的类型
     *              0 - 国内
     *              1 - 国际
     * @param tprDate tpr的日期
     */
    void importTprInfoByDate(int enterpriseId, String username, int deviceId, int type3, Date tprDate);

    List<TicketSaleDto> searchTprs(int enterpriseId, int userId, String etermUsername, String ticketNo, SearchTprCriteria sc);

    int importTicketNo(int enterpriseId, String username, String fileName, int supplierId, int formatNo);



}
